5T_웹 프로그래밍 ( Web Programming ) 맛보기 - flask

  • 웹서버는 계속 켜져 있어야 한다.
  • Cloud IDE => 같이 개발할 수 있는 곳. 클라우드 환경에서 파이썬으로 개발할 수 있는 곳
  • 국내에는 구름IDE, 해외에는 c9.io. 오늘은 c9.io로 실습
  • 비밀번호 까먹었음...
  • 파이썬에는 여러 가지 Framework가 있다. Django와 Flask가 잘 나간다.
  • 오늘은 Flask를 써보겠다

* app.py를 만들고 sudo pip3 install flask 라는 명령어를 입력 후 설치한다.

  • 안에 있는 내용은
  • from flask import Flask (Flask라는 class를 import하겠다.)
  • app = Flask(name) #name == "main"
  • if name == "main":
  • app.run()
  • 그리고 나서 python3 app.py를 실행한다.
  • 역할을 지정하고 다시 실행해보자. 데코레이터를 적극적으로 활용해보자.

In [ ]:
# from flask import Flask 

# app = Flask(__name__)   #__name__ == "__main__"

# @app.route("/")
# def home():
#     return "hello world"

# if __name__ == "__main__":
#     app.run()
  • 그리고 나서 다시 python3.app.py
  • 새로운 터미널을 띄우고 나서
  • curl localhost:5000

In [ ]:
# from flask import Flask 

# app = Flask(__name__)   #__name__ == "__main__"

# @app.route("/")
# def home():
#     return "hello world"

# if __name__ == "__main__":
#     app.run(host="0.0.0.0", port="8080")
  • 우측 상단에 Preview에서 preview~application을 클릭 후 주소가 나온다.
  • 그거를 복붙해서 띄우면 자기만의 페이지가 뜬다.

In [ ]:
from flask import Flask 

app = Flask(__name__)   #__name__ == "__main__"

@app.route("/")
def home():
    return "hello world"

@app.route("/rooms/<room_id>")
def room(room_id):
    return room_id

if __name__ == "__main__":
    app.run(host="0.0.0.0", port="8080")
  • 다시 python3 app.py로 실행해보면
  • 웹상에서 기존 주소로는 hello world가 뜨고
  • 뒤에 /rooms/123을 붙이면 123이 출력된다.
  • 그리고 나서 pip3 install requests 로 설치 후에

In [ ]:
from flask import Flask 
import requests

app = Flask(__name__)   #__name__ == "__main__"

@app.route("/")
def home():
    return "hello world"

@app.route("/rooms/<room_id>")
def room(room_id):
    response = requests.get("https://api.zigbang.com/v1/items?detail=true&item_ids=" + str(room_id))
    return response.text 

if __name__ == "__main__":
    app.run(host="0.0.0.0", port="8080")
  • python3 app.py로 실행하면
  • 직방 데이터가 웹상에 뜬다.

In [ ]:
from flask import Flask, render_template
import requests

app = Flask(__name__)   #__name__ == "__main__"

@app.route("/")
def home():
    return "<h1>hello world</h1><p>This is home</p>"

@app.route("/rooms/<room_id>")
def room(room_id):
    response = requests.get("https://api.zigbang.com/v1/items?detail=true&item_ids=" + str(room_id))
    return response.text 

if __name__ == "__main__":
    app.run(host="0.0.0.0", port="8080")
  • 여기서부터는 그냥 실습으로 하자...

In [ ]: